300 likes | 325 Views
Software Engineering Lecture-1- “ Introduction to Software. ”. Prepared by: Ahmed Sabeeh Yousif Master in computer engineering and microelectronics system Lecturer in Northern Technical University College of Technical Administrative/ Mousl Department of E- Management Techniques
E N D
Software EngineeringLecture-1-“Introduction to Software.” Prepared by: Ahmed SabeehYousif Master in computer engineering and microelectronics system Lecturer in Northern Technical University College of Technical Administrative/Mousl Department of E- Management Techniques Fourth year –First Semester
Policy • Attended to class is compulsory and will count with your course work assessment . • Assignments and mini-project during the year also taken in to account in your course work assessment . • The class should sharing the idea between students and lecturer and students too for Innovation purpose. • Final year exam paper carry mark =40% • Final year lab =10% • Course work =50% and it contains : 1- Assignment's and projects 2-Test1. 3-Test2. 2-lab1.
Cont. • Lab2. • Attends to class. • Sharing idea and innovation . • ALL THE BEST WITH SOFTWARE • ENGINEERING CLASS
Syllabus • Theory: • Introduction to Software. • Software Engineering. • software Process. • Process Model. • Requirement Engineering. • System Engineering. • Analysis Model. • Design Engineering. • Testing Strategies. • Software Pperformance. • Software Tools. • Web Engineering. • Managing Software Projects. Lab: • Using Enterprise Architect to model a system of software engineering .
References (Available in internet source) • Books: • Software Engineering for Students, A Programming Approach, Fourth Edition, DOUGLAS BELL,2005. • Software engineering:a practitioner’s Approach-6th edition ,roger pressman,magraw hill inc.
Topics covered • Introduction to Software. • FAQs about software engineering. • Professional and ethical responsibility.
Objectives • To introduce software engineering and to explain its importance • To set out the answers to key questions about software engineering • To introduce ethical and professional issues and to explain why they are of concern to software engineers
Software VS Hardware • What ‘s the difference between hardware and software? ◦buy some hardware and you get a warranty, buy some software and you get a disclaimer • The software crisis: ◦always late ◦always over-budget ◦always buggy ◦always hard to maintain ◦always better the next time round … but never is!
Characteristics of Software Products ◦General characteristics ◦Usability ◦Maintainability ◦Dependability ◦Efficiency • Good software products require good programming
Software is consider as special ! • The main differences in software engineering compared to other engineering disciplines : ◦It is difficult for a customer to specify requirements completely. ◦It is difficult for the supplier to understand fully the customer needs.
Cont. • In defining and understanding requirements, especially changing requirements, large quantities of information need to be communicated and assimilated continuously. • Software is seemingly easy to change. • Software is primarily intangible; much of the process of creating software is also intangible, involving experience, thought and imagination. • It is difficult to test software exhaustively .
Software as a Product • Software is expensive ! ◦Every software project has a trade-off between: • Functionality • Resources (cost) • Timeliness • Client: • The client provides resources and expects some product in return. • Client satisfaction is the primary measurement of success.
Understand the Problem • Considering the problems in software development and the goals that software development seeks to achieve. These are: ◦Meeting the user’s needs ◦Low cost of production ◦High performance ◦Portability ◦Low cost of maintenance ◦High reliability ◦Delivery on time
Understand the Problem • A Software Crisis ? : ◦It fails to do what the users want it to do ◦It is expensive ◦It is not always fast enough ◦Its not always easily ported ◦Maintenance is expensive ◦Its is unreliable ◦It is often late
Factors Of Software Failures • Increasing demands: • To build large, more complex systems . • Built and delivered fast . • New software engineering techniques are needed. • Low expectations: • Relatively easy without using software engineering methods . • Software is more expensive and less reliable . • Better software engineering education .
Solution –Software Engineering • Greater emphasis on systematic development. • Computer assistance for software development (CASE) • A concentration on finding out the user’s requirements • Formal/Semi Formal specification of the requirements of a system • Demonstration of early version of a system (prototyping) • Greater emphases on trying to ensure error free code
Software Engineering :Definition • Simple Definition ◦Designing, building and maintaining large software systems • I. Sommerville “Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.‟
Software Engineering :Definition • B.W.Boehm “The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them‟ • F.L.Bauer “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines‟
Software Engineering :Definition • IEEE Standard 610.12 “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software‟ • R. Fairley “The technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost constraints‟
Software Engineering • The economies of ALL developed nations are dependent on software • More and more systems are software controlled • Software engineering is concerned with theories, methods and tools for professional software development
Software Costs • Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost • Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs • Software engineering is concerned with cost-effective software development .
Software Costs • The Cost of Software Production : ◦Programmer Productivity = 10 to 20 lines of code a day ◦Predicting Software Costs • how long it will take to write a piece of software? • common for time scale to be underestimated by up to 50% ◦Hardware vs Software Costs • In 1955 software cost typically only about 10% of a project, now it is the hardware that is only 10%
FAQs about software engineering. • What is software? • What are the attributes of good software? • What is software engineering? • What is the difference between software engineering and computer science? • what is the difference between software engineering and system engineering? • What is a software process? • What is a software process model? • What are the key challenges facing software engineering? • What are the costs of software engineering
What is a software? • Computer programs and associated documentation • Software products may be developed for a particular customer or may be developed for a general market • Software products may be ◦Generic - developed to be sold to a range of different customers ◦Bespoke (custom) - developed for a single customer according to their specification .
Type of Software • Custom ◦For a specific customer • Generic ◦Sold on open market ◦Often called • COTS (Commercial Off The Shelf) • Shrink-wrapped • Embedded ◦Built into hardware ◦Hard to change
Type of Software • Differences among custom, generic and embedded software
Type of Software • Real time software ◦E.g. control and monitoring systems ◦Must react immediately ◦Safety often a concern • Data processing software ◦Used to run businesses ◦Accuracy and security of data are key • Some software has both aspects
Example: Sizewell B • Nuclear power station (PWR), on stream in 1995 • Software used extensively in the design • Software for control! • first UK reactor to use software in its Primary Protection System)
Example: A380 • A380 • 1400 separate programs • There is a software project just to manage all the software! • Clearly safety-critical features of the software
Appendix –Lecture-1- • A software buggy :is an error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. • Portability in Software design :inhigh-level computer programming is the usability of the same software in different environments.