Информационни системи - упражнение № 1

Post on 12-Jun-2015

190 views 7 download

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Създаване на база данни и обектен домейн