SlideShare a Scribd company logo
1 of 50
РАЗРАБОТКА НА
МНОГОСЛОЙНИ
ПРИЛОЖЕНИЯ
Цветелин Павлов
План


• Обща информация, определения
• Сценарий за разработка
• Разработка на базата данни и обектния домейн
• Разработка на функционалностите за работа със
  студенти
• Разработка на функционалностите за работа с
  оценки
ОБЩА ИНФОРМАЦИЯ
Корпоративна разработка
• Приложимост в корпоративни условия
  • Гъвкавост на решението
  • Изолиране на „движещите се части“
  • Управление на промените
• Множество точки на интеграция
• Индустриално одобрени стандарти за
  комуникация
• Възможности за хоризонтална и вертикална
  мащабируемост
Определения




• Многопластови приложения и системи
• Многослойни приложения
Многопластова архитектура
Типични роли в екипа

• Бизнес анализатор
• Проектен мениджър
• Проектант / архитект
• Тийм лидер
• Разработчик
• Тестер
• 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
Създаване на база данни и обектен
домейн

More Related Content

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

Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11DAVID Academy
 
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...DAVID Academy
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLDAVID Academy
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеDAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №14
Училищен курс по програмиране на C# (2013/2014), занятие №14Училищен курс по програмиране на C# (2013/2014), занятие №14
Училищен курс по програмиране на C# (2013/2014), занятие №14DAVID Academy
 
Nakov - Teaching .NET Framework
Nakov - Teaching .NET FrameworkNakov - Teaching .NET Framework
Nakov - Teaching .NET FrameworkSvetlin Nakov
 
Тестове за ползваемост - Usability testing
Тестове за ползваемост - Usability testingТестове за ползваемост - Usability testing
Тестове за ползваемост - Usability testingKalin Vasilev
 
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииКурс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииDAVID Academy
 
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...DAVID Academy
 

Similar to Информационни системи - упражнение № 1 (10)

Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
 
Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11
 
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. Представяне
 
Училищен курс по програмиране на C# (2013/2014), занятие №14
Училищен курс по програмиране на C# (2013/2014), занятие №14Училищен курс по програмиране на C# (2013/2014), занятие №14
Училищен курс по програмиране на C# (2013/2014), занятие №14
 
Nakov - Teaching .NET Framework
Nakov - Teaching .NET FrameworkNakov - Teaching .NET Framework
Nakov - Teaching .NET Framework
 
Тестове за ползваемост - Usability testing
Тестове за ползваемост - Usability testingТестове за ползваемост - Usability testing
Тестове за ползваемост - Usability testing
 
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииКурс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
 
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
 

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