Информационни системи - упражнение № 1
-
Upload
tsvetelin-pavlov -
Category
Education
-
view
185 -
download
7
Transcript of Информационни системи - упражнение № 1
РАЗРАБОТКА НА МНОГОСЛОЙНИ ПРИЛОЖЕНИЯЦветелин Павлов
План
• Обща информация, определения• Сценарий за разработка• Разработка на базата данни и обектния домейн• Разработка на функционалностите за работа със студенти
• Разработка на функционалностите за работа с оценки
ОБЩА ИНФОРМАЦИЯ
Корпоративна разработка
• Приложимост в корпоративни условия• Гъвкавост на решението• Изолиране на „движещите се части“• Управление на промените
• Множество точки на интеграция• Индустриално одобрени стандарти за комуникация
• Възможности за хоризонтална и вертикална мащабируемост
Определения
• Многопластови приложения и системи• Многослойни приложения
Многопластова архитектура
Типични роли в екипа
• Бизнес анализатор• Проектен мениджър• Проектант / архитект• Тийм лидер• Разработчик• Тестер• QA• Дизайнер, UX дизайнер
Етапи в жизнения цикъл на проект
Задание• Потребителски истории• Изисквания• Визия
Проект на функционалностите• Сценарии на употреба• Работни процеси• Скици на потребителския
интерфейс
Технологичен проект• Предметна област (домейн)• Концептуален модел• Архитектура• Технологичен стек
Разработка• Реализация• Тестване Внедряване Поддръжка
Работен поток при Scrum
СЦЕНАРИЙ ЗА РАЗРАБОТКА
Задание
• Приложение със следните функционални възможности: • Визуализация и редакция на списък със студенти• Визуализация и редакция на списък със оценките за
всеки студент
Сценарий на употреба
Скица на потребителския интерфейс
Дефиниране на предметната област
• Студенти• Факултетен номер• Собствено име• Фамилия• Снимка
• Дисциплини• Наименование
• Оценки• Студент• Дисциплина
Технологично решение
Технологичен стек
• Десктоп пласт• Windows >= XP• .NET >= 4.0• Windows Presentation Foundation• Entity Framework
• Пласт „бази данни“• Microsoft SQL Server 2008 R2
Модел на предметната област
РАЗРАБОТКА
УПРАЖНЕНИЕ № 1Създаване на база данни и модел на предметната област
Изходен код на проекта• Изтеглете: http://www.uni-ruse.bg/info-sys/lab-1.zip
• Премахнете блокировката• Десен бутон -> Properties -> Unblock
• Разархивирайте• Премахнете ограничението „само за четене“• Отворете във Visual Studio• Разкачете проекта от системата за контрол на изходния код
БАЗА ДАННИ
Физически модел
Добавяне на таблица
Добавяне на таблица
Таблица „Студенти“
CREATE TABLE [dbo].[Students]( StudentID varchar(6) not null, FirstName varchar(50) NOT NULL, FamilyName varchar(50) NOT NULL, PhotoURL varchar(255) null)
Таблица „Дисциплини“
CREATE TABLE [dbo].[Subjects]( SubjectName varchar(100) NOT NULL)
Таблица „Оценки“
CREATE TABLE [dbo].[Scores]( Value float NOT NULL, SubjectName varchar(100) NOT NULL, StudentID varchar(6) not null)
Добавяне на ключ
Първични ключове
ALTER TABLE [dbo].[Students]ADD CONSTRAINT [StudentIDPK]PRIMARY KEY (StudentID)
ALTER TABLE [dbo].[Subjects]ADD CONSTRAINT [SubjectNamePK]PRIMARY KEY (SubjectName)
Външни ключове
ALTER TABLE [dbo].[Scores]ADD CONSTRAINT [ScoreStudentFK] FOREIGN KEY (StudentID)REFERENCES Students (StudentID)
ALTER TABLE [dbo].[Scores]ADD CONSTRAINT [ScoreSubjectFK] FOREIGN KEY (SubjectName)REFERENCES Subjects (SubjectName)
РазполаганеСървър R231-2
Потребителско име info-sys
Парола @info->sys
МОДЕЛ НА ПРЕДМЕТНАТА ОБЛАСТ
Диаграма на класовете
Създаване на клас
Базов клас
Public Class DomainObject
Public Property IsNew As Boolean = True
End Class
Клас „Студент“
Public Class Student Inherits DomainObject
End Class
Клас „Студент“ – публични свойства
Private theStudentID As String Public Property StudentID As String Get Return theStudentID End Get Set(value As String) If IsNew Then theStudentID = value End If End Set End Property
Клас „Студент“ – публични свойства
Public Property FirstName As String Public Property LastName As String Public Property PhotoURL As String
Клас „Студент“ – публични свойства
Private ReadOnly theScores As IList(Of Score) Public ReadOnly Property Scores As IList(Of Score) Get Return theScores End Get End Property
Клас „Студент“ – конструктори Public Sub New(aStudentID As String) theStudentID = aStudentID theScores = New List(Of Score)
IsNew = False End Sub
Public Sub New() theScores = New List(Of Score)()
IsNew = True End Sub
Клас „Студент“ – други
Public Overrides Function ToString() As String Return FirstName & " " & LastName End Function
Клас „Дисциплина“
Public Class Subject Inherits DomainObject
End Class
Клас „Дисциплина“ - свойства
Private ReadOnly theName As String Public ReadOnly Property Name As String Get Return theName End Get End Property
Клас „Дисциплина“ - други
Public Overrides Function ToString() As String Return Name End Function
Клас „Оценка“
Public Class Score Inherits DomainObject
End Class
Клас „Оценка“ – публични свойства
Private ReadOnly theStudent As Student = Nothing Public ReadOnly Property Student As Student Get Return theStudent End Get End Property
Public Property Value As Double
Клас „Оценка“ – публични свойства
Private theSubject As Subject Public Property Subject As Subject Get Return theSubject End Get Set(value As Subject) If IsNew Then theSubject = value End If End Set End Property
Клас „Оценка“ – конструктори Public Sub New(aStudent As Student, aSubject As Subject, aValue As Double) theStudent = aStudent theSubject = aSubject Value = aValue
IsNew = False End Sub
Public Sub New(aStudent As Student) theStudent = aStudent
IsNew = True End Sub
Клас „Оценка“ – други
Public Overrides Function ToString() As String If theSubject IsNot Nothing Then Return theSubject.Name & "(" & Value.ToString() & ")" Else Throw New Exception("Оценка без дисциплина") End If End Function
КРАЙ НА УПРАЖНЕНИЕ № 1Създаване на база данни и обектен домейн