Software Engineering The establishment and use of sound
Software Engineering • ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines’ [Bauer] • ‘Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost effective solutions to software problems’ [CMU] • ‘The application of a systematic, disciplined, quantifiable approache to the development, operation and maintenance of software’ [IEEE]
Software Engineering: Principles • Computing is a broad field that extends well beyond the boundaries of any one computing discipline. • SE draws its foundation from a wide variety of disciplines. • The rapid evolution and the professional nature of SE requires an ongoing review of the corresponding curriculum.
Software Engineering: Principles • The development of SE curriculum must be sensitive to changes in technologies, practices and applications. • Any SE curriculum must be based on an appropriate definition of software engineering knowledge. • International dimension of SE must be recognised. • Aspects of professional practices must be included in any curriculum.
Software Engineering: Student Outcomes • Show mastery of the SE knowledge and skills and professional issues necessary to begin practice/research as an SE. • Work as individual or as part of a team to develop and deliver quality software artifacts. • . Reconcile conflicting project objectives, finding acceptable compromises within limitations of cost, time, knowledge, existing systems and organisations.
Software Engineering: Student Outcomes • Design appropriate solutions in one or more application domains using SE approaches that integrate ethical, social, legal and economic concerns • Demonstrate an understanding of and apply current theories, models and techniques that provide a basis for problem identification and analysis, software design, development, implementation, verification and documentation. • Demonstrate an appreciation and understanding for the importance of negotiation, effective work habits, leadership and good communication with stakeholders in a typical software environment.
Software Engineering: Student Outcomes • Learn new models, techniques and technologies as they emerge and appreciate the necessity of such continuing professional development.
Software Engineering: Knowledge Areas • Computing Essentials • Mathematical and Engineering Fundamentals • Professional Practice(s) • Software Modelling and Analysis • Software Design • Software Verification and Validation • Software Evolution • Software Process • Software Quality • Software Management
Software Engineering: Systems and Application Specialists Students should specialise in one or more areas. For each application area, students should obtain breadth in the related domain knowledge while they are obtaining a depth of knowledge about The design of a particular system. • Creative Computing: • Network-centric systems: web-based, networking, security • Information systems and data processing: databases, business admin. • Financial and e-commerce: security, accounting, finance • Fault-tolerance and survivability: security, distributed systems, failure analysis and recovery • Highly secure systems: network, security, cryptography • Safety critical systems: formal methods, verification, proofs • Embedded and real-time systems: scheduling theories/algo. , languages • Biomedical systems: Bioinformatics, health informatics, visualisation • Scientific systems • Telecommunication systems • Avionic systems
- Slides: 8