Trang 1
CS251 Dept. of Computer Science Undergraduate - Level 2 Software Engineering I Module Outline Spring “Semester 2” 2018 / 2019 1
Đang tạo bản xem trước...
CS251 Dept. of Computer Science Undergraduate - Level 2 Software Engineering I Module Outline Spring “Semester 2” 2018 / 2019 1
Module Info. ❑ Lectures: Group A: Thursdays (from 10:00 a.m. to 12:00 p.m.) Group B: Thursdays (from 12:00 p.m. to 2:00 p.m.) ❑ Instructor: Dr. Amr S. Ghoneim • Office hours: Thursdays from 9 a.m. – 10 a.m. • Short Bio: o Bachelor in Computer Science from Helwan University o Masters in Computer Science from Helwan University o PhD. in Computer Science (Artificial Intelligence) from University of New South Wales, Australia 2
Module Info. (Continued) ❑ TAs: • To be announced … ❑ Indicative Reading List (textbooks): Textbook: • Ian Sommerville, "Software Engineering (9th Edition)", Addison Wesley, ISBN: 978-0137035151, 2010. For OO Design Principles, Analysis & Design, UML Modelling: • Bernd Bruegge, Allen H. Dutoit , Object-Oriented Software Engineering: Using UML, Patterns and Java, 3rd Edition, Prentice Hall 2009. For the Design Patterns: • Vlissides, J., Helm, R., Johnson, R. and Gamma, E., 1995. Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley. And / Or • Freeman E, Freeman E, Robson E, Bates B, Sierra K. Head first design patterns. O'Reilly Media Inc., 2004. 3
Assessment Scheme ❑ Group Project (Weeks 4, 6, & 12): 25% • Practical Project 15% and 10% for Individual Assessment • 10,000 words (approx.) report + the detailed diagrams for software modelling + code (implementation) ❑ Midterm Test: (week 7) 15% ❑ 3-hours Final Written Exam: 60% 4
Group Project 25% Register with the TA(s); Your group members, & the project idea, by the end of week 3. To apply the concepts discussed in lectures the student will get engaged in a practical project. Project Ideas: The students will have the freedom to present the project idea that they would like to develop (however the idea should be within one of themes that will be announced later). Project groups: Each group will be 5 to 6 students. The students will be required to perform a 10-15 min demo of their project during the final discussion. 5
Group Project 25% Tentative/Indicative Project deliverables: Week 4: (Part of registering the project) A report of 200 -500 word indicating the following: • Project idea • Main functionalities • Similar applications in the market • Development platform 6
Group Project 25% Week 7 or 8: (Phase I Submission - 10%) UML design document indicating the following: • Functional Requirements (1 mark) • Non-Functional Requirements (1 mark) • System Architecture (1 mark) • Activity Diagram(s) (1 mark) • Use-Case Diagram(s) (1 mark) – including general use-cases for the system, and the detailed use-cases description • Sequence Diagram(s) (1 mark) – including system sequence diagrams • Collaboration Diagram(s) (1 mark) • Database Specification (1 mark) • Class Diagram (2 mark) • Snap shots of User Interface 7
Group Project 25% Tentative/Indicative Project deliverables: Week 12: (Phase II Submission - 15%) - A final report that includes: • Finalized UML Diagrams • Design Patterns (if applicable) • Snap Shots of User Interfaces • Test plan and Test cases performed - Working code (details will be announced later) 8
What is expected from you… • Attend the class regularly. • Study and learn the material presented in the class (and refer to your reading list). • Do the project (in a team of 5 to 6). • Perform well in the exams. • Don’t cheat (Plagiarism). 9
Tentative Weekly Plan • Week 1: 9 February – 15 February – Lecture 0 (Module Outline, Introduction) – Lecture 1 (Software Processes - Part I) • Week 2: 16 February – 22 February – Lecture 2 (Requirements Engineering) • Week 3: 23 February – 1 March – Lecture 3 (Introduction to Modelling and Object Oriented Modelling) • Week 4: 2 March – 8 March – Lecture 4 (Class Diagrams, & Package Diagrams) • Week 5: 9 March – 15 March – Lecture 5 (UML Functional & Dynamic Diagrams) • Week 6: 16 March – 22 March – Lecture 6 (Intro. to Design & Architectural Patterns) 10
Tentative Weekly Plan • Week 7: 23 March – 29 March – Midterm Exam • Week 8: 30 March – 5 April – Project Discussions (Phase 1) – Lecture 7 (UML Dynamic Diagrams – Part II) • Week 9: 6 April – 12 April – Lecture 8 (Software Processes - Part II) • Week 10: 13 April – 19 April – Lecture 9 (UML for Realtime Systems, & Testing) • Week 11: 20 April – 26 April – Public Holiday (Sinai Liberation Day) • Week 12: 27 April – 3 May – Project Discussions (Phase 2) – Lecture 10 (More on Design Patterns) 11
Why … 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. • Expenditure on software represents a significant fraction of GNP (Gross National Product) in all developed countries. 12
Why … Software Engineering? • The Standish Group has been publishing reports on the success of software projects since 1994. In its latest report (2012) it identified that: – Only 39% of all projects were being delivered on time, on budget, with the required features and functions. – .. 43% were late, or over budget, or not delivering all the required features. – .. 18% were either cancelled before delivery, or delivered but never used. • In those reports, the major problems have been identified. Among these problems were the following: – Poor, or lack of, user involvement. – Lack of clear business objectives. – Under and over building – building features that are never used and not building all the required features. 13
Frequently asked questions about Software Engineering Question • Answer What is software? • Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. What are the attributes of good software? • Good software should deliver the required functionality and performance to the user (useful) and should be flexible, usable, reliable, available, affordable, and maintainable (greatly influenced by how it is designed and written). What is software engineering? • Software engineering is an engineering discipline that is concerned with all aspects of software production. What are the fundamental software engineering activities? • Software specification, software development, software validation and software evolution. 14
Frequently asked questions about Software Engineering What is the difference between software engineering and computer science? • Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? • System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process. What is a System boundary? • a conceptual line that divides the system that we wish to study from ‘everything else’, (scope of a system). What is a System’s environment? • It is made up of those things which are not part of the system, but which can either affect the system or be affected by it. What is a domain? • It is a particular area of interest. 15
The Important characteristics of Software that affect its development • Malleability: Software is easy to change. This malleability creates a constant pressure for software to be changed rather than replaced. • Complexity: Software is often complex. Complexity can usually be recognized, but it is less easy to define. One item of software can be considered more complex than another if the description of the first requires more explanation than that of the second. If complexity is increased, errors will be increased. • Size: It is likely that there will be more errors in a large piece of software than there will be in a small one.. 16
(CS251) Lecture 1 SOFTWARE ENGINEERING I Software Processes(Chapter 2) CHAPTER 2 SOFTWARE PROCESSES 1
TOPICS COVERED o Software Process Models o Plan-Driven and Agile Processes o The Waterfall Model o Incremental Development o Reuse-Oriented Software Engineering o Process Activities o Software Specification o Software Design and Implementation o Design activities o Software Validation o Testing stages o Software Evolution CHAPTER 2 SOFTWARE PROCESSES 2
THE SOFTWARE PROCESS A structured set of activities required to develop a software system. Many different software processes but all involve: Specification – defining what the system should do; Design and implementation – defining the organization of the system and implementing the system; Validation – checking that it does what the customer wants; Evolution – changing the system in response to changing customer needs. A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. CHAPTER 2 SOFTWARE PROCESSES 3
SOFTWARE PROCESS DESCRIPTIONS When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities. Process descriptions may also include: Products, which are the outcomes of a process activity; Roles, which reflect the responsibilities of the people involved in the process; Pre- and post-conditions, which are statements that are true before and after a process activity has been enacted or a product produced. CHAPTER 2 SOFTWARE PROCESSES 4
Hiển thị 20 trang đầu. Tải tài liệu để xem đầy đủ.
Chưa có bình luận nào. Hãy là người đầu tiên!
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!