160 likes | 295 Vues
This lecture provides an introduction to Software Engineering (SE), its processes, and practical methods. It addresses the field's origins, aimed at overcoming the "software crisis" and ensuring the delivery of high-quality, cost-effective software. Key characteristics of software, types of software products, and essential development activities such as specification, development, validation, and evolution are discussed. Various software process models, attributes of good software, and methods including structured approaches and CASE tools are explored, along with the ethical responsibilities of software engineers.
E N D
WXGE6103Software Engineering Process and Practice Introduction to SE Lecture 1: Introduction to Software Engineering
References • Sommerville, I. 2007. Software engineering. Eighth Edition. Addison-Wesley. (Available in UM Pekan Buku) • Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli. 2003. Fundamentals of Software Engineering. Second Edition. Prentice Hall. • Pfleeger, S. L. 2006. Software Engineering: Theory and Practice. Third Edition. Prentice Hall.
Course Blog http://busyairah.wordpress.com/
SW SE SW PROCESS WXGE6103 SE COSTS SW PROCESS MODEL GOOD SW SE METHODS CASE
Software Engineering (SE) • Def: An engineering discipline concerned with all aspects of sw production • practicality of developing sw • delivering useful & high quality sw • cost effective • The field of Software Engineering (SE) was born to overcome “software crisis“ (1968) • failures of software projects to meet schedule and budget constraints • SE has many sw development approaches
Software (SW) • What is SW? • Computer programs + associated documentation and configuration data • Characteristics of SW • Abstract & intangible • Not constrained by material • Not governed by physical laws /manufacturing process - computer programs - configuration files - system documentation - user documentation - website Software
Software (SW) • Types of Software • Generic product • Stand-alone, sold in open market • Customised product • Custom-built for particular customer
Software Process • A set of activities and associated results that produce a software product • Generic activities in all software processes are: • Specification - what the system should do and its development constraints • Development - production of the software system • Validation - checking that the software is what the customer wants • Evolution - changing the software in response to changing demands
Software process model • A simplified representation of a software process, presented from a specific perspective: • Workflow model - sequence of activities • Data-flow model - information flow • Role/action model - who does what • Generic process models • Waterfall • Iterative Development • Component based Software Engineering
Attributes of good software • Maintainability • evolve to meet changing needs • Dependability • Software must be trustworthy • Efficiency • Software should not make wasteful use of system resources • Usability • Software must be usable by the users for which it was designed
Software Engineering Methods • Structured approaches to software development which include system models, notations, rules, design advice and process guidance • Model descriptions • Descriptions of graphical models which should be produced • Rules • Constraints applied to system models (e.g. every entity have a unique name) • Recommendations • Advice on good design practice • Process guidance • What activities to follow • 1970s – Structured Analysis (JSD) • 1980s - OO methods (Booch, Rumbaugh) • 1990s – Unified approach
CASE (Computer-Aided Software Engineering) • Software tools which are intended to provide automated support for software process activities. • Upper-CASE (Tools to support the early process activities of requirements and design) • Lower-CASE (Tools to support later activities such as programming, debugging and testing)
Key Challenges SW ENG • Heterogeneity • Delivery • Trust
Professional Ethics of Software Engineer • Confidentiality • Should not misrepresent own level of competence • Intellectual property rights • Computer Misuse