We engineer software. Other just craft it
Practical Software Engineering for the .NET Platform (4 day class)
This course is intended for solution providers, senior programmers, enterprise development teams, project managers, project team members, and technology, methodology, and business architects.
This course syllabus should be used to determine whether the course is appropriate for the student, based on current skills and technical training needs. Technical information is provided on the intended audience, course prerequisites, covered topics, lab exercises, course materials, and software.
Course content, prices, and availability are subject to change without notice.
Practical Software Engineering for the .NET Platform is a course on software engineering that presents it in a holistic but simple approach and is applied to a .NET context. The structure of the course stems directly from the underlying process presented, which is a practical simplification of the Rational Unified Process (RUP), with emphasis on the developer-oriented workflows. The material will address at the same time four dimensions of software engineering, namely the process (a practical process derived from RUP), the methods/techniques (OOAD), the tools (VS.NET/Rational XDE) and the technology (.NET). The objective is not to extensively cover each of these elements in detail. Instead, this course dissects the thought processes that lead from the system requirements to the code generation as a case study without emphasis on generalizations of the methodologies. To achieve this, the course will provide the students with an extensive case study as a support for the hands on activity and reflection. This case study will be a journey through the life of an automation solution project, showing the casting of the various roles involved and the way they are contributing: who does what, when and how.
During the first day, we will first review some concepts of software engineering, reviewing the four dimensions that will be demonstrated in the course. In this introduction we will also review the state of software engineering today and present future directions. We will present an overview of the process that will be followed during the 4 days of the class.
We will then cover an introduction to business models, their importance and implications for the system design. A workshop will permit the attendants to get insight on this topic.
The second day will be dedicated to understanding and practicing the capture of the system specifications, including the user experience model. In a workshop the attendants will be asked to capture high-level and detailed use cases, user experience model and use case storyboards. This will be followed by the development of the analysis model, also with an associated workshop.
The third day we will work in producing the detailed design model and at the same time generate the code for the system. Attendants will be given the opportunity to use the code generation and synchronization capabilities of Rational XDE.
The fourth day, we will give consideration to the role-based security, how it can be modelled and a technique to configure .NET, with traceability to the security model. We will also document the implementation model. Finally we will consider functional testing at two levels: unit test and system test. We will see how unit testing is contributing to the system design, in a similar way as testing is central to the Extreme Programming (XP) approach to software development.
All the workshops will involve using mainly Visual Studio.NET and Rational XDE.
For each part of the course, there will be a presentation of concepts, followed by description of method or techniques along with insight to the thought process that is in affect for the specific stage of development.
At course completion
At the end of the course, students will be able to:
Some understanding of OOAD principles, UML, the .NET architecture and C#.
Project Managers, Business Analysts, Functional Analysts/Architects, and Software/Application/Technical architects, Developers/Programmers. All the roles that participate in the software development process.
The course materials, lectures, and lab exercises are taught in English. To benefit fully from our instruction, students need an understanding of the English language and completion of the prerequisite.
Course Materials and Software
The course workbook is yours to keep.
Module 1: Introduction
Module 2: Business Models
Module 3: System Specification
Module 4: User Experience Model
Module 5: Analysis Model
Module 6: Design Model
Module 7: Implementation Model
Module 8: Role Based Security
Module 9: Testing