Practical Software Engineering

Slides:



Advertisements
Similar presentations
Unit 2. Software Lifecycle
Advertisements

Chapter 2 – Software Processes
Alternate Software Development Methodologies
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Development Process
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS361 Winter 2013 Final Exam Review Software Engineering I Oregon State University.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
An Introduction to Software Engineering
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
EXERCISE DDC 3223-SOFTWARE ENGINEERING. CHAPTER 1: INTRO.TO SOFTWARE ENG 1.Briefly explain the terms below: a)Software b)Software engineering c)Software.
1 The Software Engineering Education at CSULA Jiang Guo Jose M. Macias June 4, 2010.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Advanced Higher Computing Science
Process 4 Hours.
Introduction to Project Management
Software Testing.
Software Engineering (1)
Chapter 7: Software Engineering
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Software Engineering Process
Chapter 1: Introduction to Systems Analysis and Design
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Exam 0 review CS 360 Lecture 8.
Software Quality Engineering
Fundamentals of Information Systems, Sixth Edition
Lecture 0 Software Engineering Course Introduction
CS 389 – Software Engineering
Review for Final, Fall 2010 Close book, Close notes
Software Process Activities.
Chapter 6: Database Project Management
421 Review Questions Does software engineering add documentation that slows down the project? Is there one software process that is better than the others.
Chapter 18 Maintaining Information Systems
Software Quality Engineering
Iterative and Agile Development
DT249/4 Information Systems Engineering Lecture 0
CS 425/625 Software Engineering Software Processes
Chapter 2 SW Process Models
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Two part course Software Engineering option only!
Introduction to Software Engineering
Informatics 121 Software Design I
Object Oriented Analysis and Design
Chapter 2 – Software Processes
Methodologies For Systems Analysis.
Lecture 09:Software Testing
Lecture 2 Revision of Models of a Software Process
Chapter 2 – Software Processes
Agile Process: Overview
Informatics 121 Software Design I
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Software engineering -1
Software Engineering Fundamentals
Systems Analysis and Design I
Appendix B Agile Methodologies
Extreme Programming.
Software Engineering I
Rapid software development
Chapter 1: Introduction to Systems Analysis and Design
UML Design for an Automated Registration System
Presentation transcript:

Practical Software Engineering Revision Class

Basic Information Level 6, 15 credits Module code: BUCI049H6-AAA This term: optional module Lecturer: Taolue Chen http://www.dcs.bbk.ac.uk/~taolue/, taolue@dcs.bbk.ac.uk All materials are available at http://www.dcs.bbk.ac.uk/~taolue/PSE.htm 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)

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

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

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

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?

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?

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

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

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

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.

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)

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

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

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?

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

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

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?

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?

Good luck!