Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering EKT 420 MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4.

Similar presentations


Presentation on theme: "Software Engineering EKT 420 MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4."— Presentation transcript:

1 Software Engineering EKT 420 MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

2 Course overview  Lectures 60% Two lectures per week (3 hours)  Lab 40% One lab per week (2 hours) As follow: Final exam 50% Course work 50%  lab assignment 20%  test 10%  projects 20%

3 Guide lines  Early study Object-Oriented Software Engineering Practical software development using UML and JAVA, 2 nd edition, (Timothy C. Lethbridge and Robert Laganiere) Lecture notes provided materials Take notes during the lecture  Assignments For self development Counted lab assignment

4 CO1: Understand the definition of software engineering, terms used in its discipline and ethics of software engineers CO2: U nderstanding on software process together with its generic phases and able to discern the suitability of each software process/lifecycle model to a given problem CO3: Ability to analyze a problem based on software engineer’s perspective, gather requirements to write specification document based on the standard documentation and build the analysis model

5 Course outcomes CO4: Able to produce an architectural design and detail design of the software based on the requirement and generate programming code CO5: To implement validation and verification on the software prototype

6 Lecture 1.  Software and software engineering  Software Engineering definition  Difference between computer science and  software engineering

7 Questions you need to answer  What is software?  What is software engineering?  What is the difference between software engineering and computer science?  What are the costs of software engineering?  What are software engineering methods?  What are the attributes of good software?  What are the key challenges facing software engineering?

8 What is software  Computer programs and associated documentation such as requirements, design models and user manuals.  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 e.g. PC software such as Excel or Word. Bespoke (custom) - developed for a single customer according to their specification. Embedded software – to adopt hardware functionality.  New software can be created by developing new programs, configuring generic software systems or reusing existing software.

9 Software problems  Software crisis Poor software design. Doesn't meet their expectations. Never delivered or late delivered. Over budget. Software bugs.  Software engineering methods To meet expectations. Avoid crisis.

10 Software designing artifacts  Software unlike other engineering products are: Illusive. Low mass production. Un-engineered designs are easy to collapse. no expiry date.

11 Software engineering  Solve problems Economically systematic High quality Satisfactory Reliable Maintainable Flexible

12 Other definitions  IEEE: (1) the application of systematic, disciplined, quantifiable approach to the development, operation, maintenance of software ;that is, the application of engineering to software. (2) the study of approaches as in (1).  The Canadian Standards Association: the systematic activities involved in the design, implementation and testing of software to optimized its production and support.

13 Software engineering vs. computer science  Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.  Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).

14 Stakeholders software USER CUSTOMERS DEVELPER MANAGMENT SOFTWARE DEVELOPER

15 Stakeholders  Users Those whom use the software  Customers Start design (decision)  Software developers Develop. Maintenance. Software engineers Recognized by their high quality work. Work in teams.  Development manager Companies managers. Always looking for profit ( low design cost & pleasing customers. user manager customer developer quality

16 Software quality  Is this a high quality software? Customer:  Solves my problem.  Low cost (money and resources). User:  Easy.  Efficient.  Get job done. user manager customer developer quality

17 Cont.  Developer: Easy to design Maintainable Reusable  Development manager: More selling Satisfactory Low design & maintaining cost Developer Easy to design Maintainable Reusable

18 Quality software CustomerUser DeveloperManager Solve my problemsNot costedEasyEfficientGet job done EasyMaintainableReusable Low design cost More sell Satisfactory

19 Cont.  It is very hard to say this is a high quality software, but we may consider the most important five quality attributes:  Usability  Efficiency  Reliability  Maintainability  Reusability

20 Cont.  Make your objectives  Internal quality Comments Complexity  Short term Does it meets the immediate needs? Sufficient, efficient for today data?  Long term quality What about maintainability? What about future needs?

21 Software engineering project  Team work Few people for small projects What about big projects  Three categories: Evolutionary project  Modifying Greenfield project  Developing from scratch Build from existing components  Uses frameworks  New for missed details

22 Common project activity  Project life cycle:  Requirement and specification Understanding the problem  Design How to implement the requirements  Modeling Software representation

23 Cont.  Programming Translate what you did to high level programming language (coding)  Quality assurance Meet the quality objectives  Reviews and inspections  Testing  Deployment Distributing and installing the system

24 Cont.  Managing the software configuration Identifying the components All software engenderers must participate for their components.  Managing the process Estimate the cost of the system Planning

25 AAny question. TThank you…..

26 Questions for this lectures  Define the following terms: Software engineering(IEEE, Canadian Standards Association) Software The differences between software and software engineering? Object, Class, polymorphism, inheritance. Stockholders Software engineering quality

27  Describe the role of each stockholder in a software engineering project?  Draw a class box for each of the following stating the class name, attributes, and methods: Cars Students Server Human Home

28  In example project there are two classes namely (Human, student, lecturer, child), draw a diagram showing the inheritance relationship between these classes.


Download ppt "Software Engineering EKT 420 MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4."

Similar presentations


Ads by Google