Presentation is loading. Please wait.

Presentation is loading. Please wait.

Practical Software Engineering

Similar presentations


Presentation on theme: "Practical Software Engineering"— Presentation transcript:

1 Practical Software Engineering
Revision Class

2 Basic Information Level 6, 15 credits Module code: BUCI049H6-AAA
This term: optional module Lecturer: Taolue Chen All materials are available at But next academic year: BSc Computing program SE1 (Level 4, compulsory), SE2 (Level 5, optional) Information System A&D (Level 5, Compulsory) Information System A&D II (Level 6, Compulsory)

3 Contents One term, first course in Software Engineering Focus on
Important concepts (such as software processes) – 3 sessions Essential software development activities – 5 sessions Project management and planning – 2 sessions

4 Arrangements Contents Date/Place Portfolio Remark W1 Introduction
Jan 12th -Mal403 Software failure (presentation) W2 2. Software processes Jan 19th Software processes (essay) W3 3. Agile methods Jan 26th Agile Methods (Comparison) W4 4. Requirements Feb 2nd Requirements Specification W5 5. Modelling Feb 9th System Modelling W6 SELF-STUDY Deadline of C1 W7 6. Design and Impl. Feb 23rd Software Implementation Strategies W8 7. Testing Mar 2nd Testing Plan W9 8. Evolution Mar 9th Software evolution (essay) W10 9. Project management Mar 16th -Mal403 Project Planning and Risk Assessment Deadline of C2 W11 10. Configuration control Mar 23th -Mal457 Version Control with Git and GitHub Can you add any more types of software to the list? Give specific examples of the different types of software you have listed. 10 sessions: Introduction Software process models Agile software development Requirement engineering Software modelling

5 Arrangement –con’d Revision: May 11th at MAL 403 (that’s today!)
Will be simply a Q&A session, but NO lecture like this.

6 Assessment Porfolio Tasks (20%) Final exam (80%) Coursework portfolio.
Students will complete three from a possible ten tasks based on session topics. You have done these well in general ;-) Final exam (80%) 2-hour exam, EIGTH questions, 100 marks Each one will have 2-3 sub-questions. May 29th, 10:00am---12:00pm Is being a software engineer the same as being an engineer in other disciplines, e.g. civil engineering? Is the term engineer correctly applied to those working as software engineers?

7 Textbook Ian Sommerville. Software Engineering. 10th Ed.
How do you think software engineering differs from other branches of engineering (e.g. civil engineering)? In what way do you think the theories, methods and tools used if software engineering are different from, or similar to other, more established, branches of engineering? In what ways is software engineering distinct from computer science?

8 Session 1 Introduction What is Software Engineering?
What does “software” mean in the context of SE? Importance of Software engineering Challenges of Software Engineering Software processes, methodologies, techniques, tools Understand that the development of different types of software may require different SE techniques Characteristics of successful software

9 Session 2: Software processes
What is a software process? A coherent set of activities for software production Four fundamental activities of software processes What are they? What does each one do? Plan-driven vs agile software processes Software process models Three generic models: waterfall, incremental development, integration and configuration Definitions; Advantages and disadvantages; Comparison; Given a practical case, which model should be selected? And why? Software Process Improvement, CMM specification, development, validation, maintenance

10 Session 3: Agile Software Development
What does it mean by “agile”? The core values and principles of agile methods Typical practice of Agile methods Extreme programming Key practices and distinguished features of XP For each practice (user stories & task cards, refactoring, test-first development, pair programming), understand what it is? Its benefits (i.e., why?) Extreme Programming Scrum Kanban Crystal Methods

11 Session 4: requirement engineering
Understand basic concepts of user and system requirements Why they should be written in different ways? Understand basic concepts of functional and non-functional requirements Their difference, how to distinguish them? Requirement engineering process Elicitation, analysis, and validation Requirement specification (ways to write the req. down) Use case (very important ;-) ) scenario, actor, use case diagram, use case description, etc.

12 Session 5 Software Modelling
UML ;-) Interaction model (user case, sequence diagram) Behavioural model (activity diagram, state diagram) Structural model (class diagram) Interaction model (user case, sequence diagram) Behavioural model (activity diagram, state diagram) Structural model (class diagram)

13 Session 6 Software Design and Implementation
Architectural design What is this? Why? Design decisions Architectural views Architectural patterns Application architecture Design models Design pattern Open source development

14 Session 7 Testing Testing Stages Testing activities By whom Remark
Development testing Unit testing team developing the system White-box/black-box Component testing System testing (user case testing …) Or: a separate testing team Realising Testing Scenario testing Separate team not involved in system development Black-box Requirement testing Performance testing (incl. stress testing) User Testing Alpha testing users or customers Beta testing Acceptance testing

15 Testing For each concept of testing, understand
what it is? What is the purpose? How does it carry out? When given a real scenario, how to apply testing?

16 Session 7 Software Evolution
What is software evolution and why it is important? Software evolution process Legacy systems Software maintenance What is software maintenance? The reasons to perform software maintenance Principal activities of software maintenance Software re-engineering

17 Session 9 Project management and planning
Risk management Categories of risks Risk management process (identification, analysis, planning, monitoring) Project planning Scheduling: Gantt chart, PERT  (program evaluation and review technique) chart (Show the interdependence of tasks, Calculate the amount of time it will take to complete a project, Determine a project’s critical path; Set start and end dates for tasks) Estimation techniques

18 Project Schedule Representation
PERT chart showing task dependencies and time estimates. 1. How might a PERT chart like the one above help us to schedule a project and allocate resources to tasks?

19 Session 10: Software Quality and Configuration Management
What is software quality and its management, why it is important? Quality assurance process Software standard Software measurement Configuration Management Aim Activities (version management, release management, change management, system building) What are these?

20 Good luck!


Download ppt "Practical Software Engineering"

Similar presentations


Ads by Google