Ознакомиться с языком C#, базовыми механизмами ООП. В шаблонном репозитории описаны базовые сущности, требуется реализовать недостающие методы и написать тесты, которые бы проверили корректность работы.
В данной лабораторной используется только часть Информационной системы университета (ИСУ), отвечающая за хранение структурированной, актуальной информации о статусе студента, то есть за какой учебной группой, курсом, факультетом закреплен студент. Также добавим сюда функциональность переводов студентов между группами.
- Хранение актуальной информации о студенте.
- Хранение актуальной информации о группе и ее составе.
- Реализация возможностей студента, учащегося в группе.
Перед написанием любой программы, приложения, сервиса, системы необходимо составить техническое задание. Что это вообще такое? Грубо говоря, перевод полета фантазии заказчика на сухой язык фактов и ограничений в реализации.
- Что является актуальной информацией о студенте?
- Что является актуальной информацией о группе?
- Какие возможности имеет студент?
- Каким типом данных будут табельные номера студентов и уникальные идентификаторы групп?
- Мы делаем систему для всего университета или только для конкретного факультета?
- Какой формат названия у групп?
- Есть ли ограничение на количество студентов в группе?
- Студент может быть одновременно в нескольких группах?
- При переводе между группами как нужно решить вопрос единственности группы у студента?
Начинать выполнение лабораторной лучше после получения ответов на вопросы выше)
Также необходимо реализовать следующий интерфейс (находящийся в проекте Isu шаблонного репозитория), который описывает выполняемые студентами действия:
public interface IIsuService
{
Group AddGroup(GroupName name);
Student AddStudent(Group group, string name);
Student GetStudent(int id);
Student FindStudent(int id);
List<Student> FindStudents(GroupName groupName);
List<Student> FindStudents(CourseNumber courseNumber);
Group FindGroup(GroupName groupName);
List<Group> FindGroups(CourseNumber courseNumber);
void ChangeStudentGroup(Student student, Group newGroup);
}
И протестировать написанный код:
[Test]
public void AddStudentToGroup_StudentHasGroupAndGroupContainsStudent()
{
}
[Test]
public void ReachMaxStudentPerGroup_ThrowException()
{
}
[Test]
public void CreateGroupWithInvalidName_ThrowException()
{
}
[Test]
public void TransferStudentToAnotherGroup_GroupChanged()
{
}
- Нужно использовать
GroupName groupName
илиstring groupName
?
Можно использовать любой вариант. Первый предпочтительней.