100 likes | 295 Views
Software Engineering. Introduction. Software. Generic Products: Stand alone systems produced by a development organization Customized Products Software: Computer Program Documentation. Software Engineering. Refinement of knowledge into levels of abstraction
E N D
Software Engineering Introduction
Software • Generic Products: Stand alone systems produced by a development organization • Customized Products • Software: • Computer Program • Documentation
Software Engineering • Refinement of knowledge into levels of abstraction • Traceability of information through levels
Software Process • Set of activities and associated results that produce a software product • Fundamental process activities: • Software specification • Software development • Software validation • Software evolution
Software Process Models • Simplified description of a software process: • Workflow model: Sequence of activities with their inputs/outputs and dependencies. Activities represent human actions • Dataflow/activity model: Data transformations carried out by people or by computers • Role/action model: Roles of people involved in the process and activities for which they are responsible
Software Development Models • Three paradigms of software development: • The waterfall approach: each activity is represented as a phase that leads to the next one. • Iterative development: activities are interleaved. “Rapid development of prototypes” • Component-based software engineering: development as an integration of preexistent and new parts
Good Software Attributes • Maintainability: capacity for evolution • Dependability: reliability, security and safety • Efficiency: regarding usage of resources. Responsiveness, processing time, memory utilization, etc. • Usability: good user interface and documentation
Key Challenges • Heterogeneity: sw should be flexible to “blend” with different computing environments, support systems, old applications, etc. • Delivery: shortening delivery time without compromising sw quality • Trust: develop techniques that ensure that sw can be trusted by its users
Professional and Ethical Responsibility • Confidentiality: all business information (customer’s) should be kept confidential • Competence: do not accept work that is outside your competence • Intellectual property rights: intellectual property of employers and clients should be protected • Computer misuse: game playing, internet browsing, virus disemination (see code of ethics in page 15)