csci2407 software systems development eric tatham gh6.72 [email protected] etatham
Post on 18-Dec-2015
214 views
TRANSCRIPT
CSCI2407Software Systems Development
Eric Tatham
GH6.72
www.cse.dmu.ac.uk/~etatham
What the module entails
• Develop a software system according to a client’s specification, including all design documentation.
• Design constraint: Must be based on Object-oriented principles
• Implementation constraint: Develop using the .NET environment. Language used can be C++, Java or C#
• Documentation constraint: Must conform to UML standards
How it will work
• You are part of Software Development Team of 3 or 4 people.
• Your client is: Tom Bedlam of The Bartholomew Publishing Company.
• You need to negotiate the requirements with the client, then design, develop and test the required system.
• You are required to be patient when the client changes his mind about the spec.
Other resources
• Also available is a Software Design Consultant called Eric who, coincidently, looks a lot like Tom
• However, they don’t know each other and will get puzzled (and possibly shirty!) if you confuse them with one another.
Assessment
• As a group, you need to maintain a project logbook, detailing every stage of the project, including all documentation. (You will eventually need a duplicate copy for each group member.)
• Assessment is 100% based on an Open Book exam in which you will be allowed to refer to your logbook.
Module structure
• Introduction in Week 1• Meet the client in Week 2• No more lecture sessions!• First term: Two lab sessions per week • The rest: One lab session per week.• At lab sessions, either Tom or Eric will be
available.• No lab sessions in first week.
Steps to be taken
• Requirements analysis
• Developing a structural model
• Developing a dynamic model
• Designing the interface
• Detailed design and implementation
• Testing
Requirements analysis
• This is the process of analysing the initial statement of requirements in consultation with the client.
• The aim is to reach an agreed and unambiguous specification called the Negotiated Statement of Requirements (NSR).
• The NSR tells us what the system has to do.
Initial Structural Model
• Identify and categorise the real-world entities that may need to be modelled in the system. ie What classes and associations?
• Develop a class diagram
• Also the associated text comprising the class descriptions.
• Also identify any invariants.
Constructing Dynamic Models
• Identify Uses Cases
• Use walk-throughs to determine navigation of associations and additional class responsibilities
• Use Sequence Diagrams to show how the responsibilities for carrying out the steps of each walk-through should be allocated
Designing the Interface
• In consultation with the client, design the User Interface
• Produce a number of prototypes for iterative development, evaluating each stage with the client
Detailed Design and Implementation
• Consider class hierarchy in relation to inheritance and possible Abstract classes.
• Fully specify each class, deciding exactly how each class is to fulfil its responsibilities.
• Implement the classes; their variables and methods.
• Implement the ‘main’ or ‘orchestrating’ code.
Testing
• This is an iterative process to be carried out throughout the development.
• You need to ensure that your system is acceptable to your client in terms of agreed data, functionality and usability criteria.
Documentation
• You need to ensure that all your design process is fully documented.
• This forms the basis of your ongoing logbook which can be taken into the exam.
Change management
• At some point in the course of system development, your client may introduce a slight modification to the specification.
• If this happens, you should be able to cope and should document changes appropriately.
• It also means you are entitled to charge extra!
Next weekBedlam!