Page 1 of 19 AY1617 – July 15, 2016 /amagcalas
HOLY ANGEL UNIVERSITY
COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY
SOFTWARE ENGINEERING PRINCIPLES COURSE SYLLABUS
Course Code : 6SOFTENG Prerequisite : 6COMPRO2L
Course Credit : 3 Units (3 hours LEC) Year Level: 3rd year
Degree Program : Bachelor of Science in Information Technology (BSIT) Bachelor of Science in Computer Science (BSCS) Course Description :
The course introduces the fundamentals and principles of Software Engineering. Furthermore, it covers the study of software structure, designs and types along with the underlying Software Engineering Ethics. Throughout the course, one specific software (stand-alone, web-based, LAN based, mobile application or any similar software) will be developed and scrutinized by guest panelists. The careful observation of the differences of one type of software with another will be taken thoroughly. A variety of concepts, principles, techniques, and tools are presented, encompassing topics such as software processes, project management, people management, software requirements, system models, architectural and detailed design, user interface design, programming practices, verification and validation, and software evolution.
At the end of the course, students will be able to:
Course Outcomes Graduate Outcomes aligned to
C1 Identify software engineering solutions for particular problem/s of an organization, institution, society, among others based from information gathering processes.
BSCS01: Apply knowledge of computing fundamentals, knowledge of a computing specialization, and mathematics, science, and domain knowledge appropriate for the
computing specialization to the abstraction and conceptualization of computing models from defined problems and requirements.
C2 Assess a current existing software and or application by applying SWOT analysis to determine its strengths,
BSCS03: Develop and evaluate solutions for complex computing problems, and design and evaluate systems,
Page 2 of 19 AY1617 – July 15, 2016 /amagcalas
weaknesses, opportunities for improvement and threats in the case improvements were developed.
components, or processes that meet specified needs with appropriate consideration for public health and safety, cultural, societal, and environmental considerations.
C3 Evaluate the pros and cons of a software development plan from the selection of platform to the programming language to be chosen by identifying tradeoffs in terms of reliability, feasibility, design, among others.
BSCS05: An ability to apply mathematical foundations, algorithmic principles and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
C4 Develop a software project using modern engineering techniques and tools.
Evaluate resources used for the development of a software prototype.
BSCS06: Create, select, adapt and apply appropriate techniques, resources and modern computing tools to complex computing activities, with an understanding of the limitations to accomplish a common goal.
C5 Develop the software project by following necessary software development processes and selecting appropriate tools to be used by team members in consideration of their current skills and timeline of required output.
Prepare and present action plan, goals and timeline of activities to complete the required group project.
BSCS07: Function effectively as an individual and as a member or leader in diverse teams and in multidisciplinary settings.
C6 Interview target clients to gather adequate information, determine their situation, existing concerns and issues in relation to their planning to adapt software and or
technological tools.
Identify Software Engineering ethical concerns which need to be followed all throughout the software development processes.
BSCS08: Communicate effectively with the computing community and with society at large about complex computing activities through logical writing, presentations, and clear instructions in both English and Filipino.
Page 3 of 19 AY1617 – July 15, 2016 /amagcalas
Learning Evidences
As proof of achievement of the above-mentioned outcomes, students are required to submit/demonstrate the following:
LE1: A Software Assessment with SWOT Analysis C2
LE2: Case Study: Identifying the best Software for Clients C1, C3, C5, C6 LE3: Deliverable A: Software Project Prototype C3, C4, C5, C6 LE4: Deliverable B: Complete Software Project and Documentation C3, C4, C5, C6
Measurement System:
To assess the level of performance in the learning evidences, the following rubrics will be used:
LE1: A Software Assessment with SWOT Analysis
Area to Assess Allotted Percentage
Software/Application Strengths (design, platform used, memory management, etc.)
25%
Software/Application Weaknesses (design, platform used, memory management, etc.)
25%
Software/Application Opportunities (improvement of design, functions, features, performance, etc.)
30%
Threats for Improvement (speed, user-friendliness, size, etc.) 20%
TOTAL 100%
LE2: Case Study: Identifying the best Software for Clients
Area to Assess Allotted Percentage
Identification of the main issues/problems 20%
Analysis on identified issues 20%
Comments on effective solutions to be used 30%
Feedback from clients regarding planned solutions 20%
Documentation format 10%
TOTAL 100%
Page 4 of 19 AY1617 – July 15, 2016 /amagcalas
LE3: Deliverable A: Software Project Prototype
Area to Assess Allotted Percentage
Program Utility 10%
Appropriateness to target user 15%
Prototype's Interaction Usability 15%
Completeness: Breadth of Interface 10%
Completeness: Depth of Interface 10%
Sophistication of Interface 10%
Prototype's Graphical Design 10%
Creativity 10%
Prototype's Feedback to User 10%
TOTAL 100%
LE4: Deliverable B: Complete Software Project and Documentation
Area to Assess Allotted Percentage
Project Design Objectives 10%
Project Methodologies 10%
Project Appearance/Interface 10%
System/Application Functionalities 15%
Difficulty of the Project Output(s) 10%
Logical Orientation (e.g. Validation) 10%
Work/Task Distribution Scheme 10%
Project Documentation 20%
Overall Presentation (Visual Aids) 5%
TOTAL 100%
Page 5 of 19 AY1617 – July 15, 2016 /amagcalas
Learning Plan:
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output
Identify the
significance of the course in the field of specialization.
Identify importance of software engineering Classify the technical (engineering), managerial, and psychological aspects of software engineering Identify major phases in a software development project Incorporate ethical
dimensions in software engineering on
1 - 2 C2 Origin and Evolution of Orientation/Course
Overview 1. Introduction
1.1. What is Software Engineering 1.2. Phases in the
development of software
1.3. Maintenance or evolution
1.4. From the trenches - Software Engineering
Ethics
2. Introduction to
Software Engineering Management
2.1. Planning a software
development project 2.2. Controlling a software
development project
Expository
Mediated Lecture
Brainstorming
Recitation
Assignment1
Page 6 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output software planning
Identify key factors affecting time frame and extent to which new
developments impact software engineering practice Determine the contents of a project plan Identify major dimensions along which a software development project is controlled
Differentiate generic models for structuring the software
development process
Classify pros and cons of these
3 C1, C3,
C5, C6
3. Software Life Cycle Revisited
3.1. The Waterfall Model
3.2. Agile Methods 3.3. The Rational
Unified
Process (RUP) 3.4. Model-Driven
Expository Mediated Lecture
Brainstorming Recitation SWOT Analysis
Assessed Software LE1
Page 7 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output models, in
particular those of the planning- driven and agile methods
Identify similarities
between software maintenance and software
evolution Incorporate process modeling as a way to describe software development processes explicitly
Architecture 3.5. Intermezzo:
Maintenance or Evolution 3.6. Software
Product Lines 3.7. Process Modeling
Exploratory Collaboration Presentation
Quiz1
Collaborated works
Integrate the main tasks and responsibilities of software
configuration management Employ the importance of people issues in software
4 C1, C3,
C5, C6
4. Configuration Management 4.1. Tasks &
Responsibilities 4.2. Configuration Management Plan 4.3. People
Management and Team Organization
4.4. People Management
Expository
Mediated Lecture
Role-playing activity
Seatwork1
Role-playing presentation
Page 8 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output development
Classify major types of management styles
Critically assess various
taxonomies of quality attributes Use information related to the international standards pertaining to software quality
5 C1, C3,
C5, C6
5. On Managing Software Quality
5.1. On Measures and Numbers
5.2. A Taxonomy of Quality Attributes 5.3. Perspectives on
Quality 5.4. The Quality
System
5.5. Software Quality Assurance 5.6. The Capability
Maturity Model (CMM)
Expository
Mediated Lecture
Branstorming
Case Analysis
Quiz2
Best Software for Clients Case Study LE2
6 Prelim
Examination Identify
quantitative, objective approaches to software cost estimation
7 C1, C3,
C5, C6
6. Cost Estimation 6.1. Algorithmic
Models
6.2. Guidelines for Estimating Cost 6.3. Distribution of
Expository
Mediated Lecture
Recitation Cost- Estimation
Software Estimated Cost
Page 9 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output
Enumerate factors that affect software
development productivity Determine well- known techniques for estimating software cost and effort
Manpower Over Time
1.4 Agile Cost Estimation
Identify risks which can be prevented from becoming problems Identify
techniques for the day-to-day
planning and control of software development projects Incorporate requirements engineering as a cyclical process involving four
8 C3, C4,
C5, C6
7. Project Planning and Control
7.1 A Systems View of Project Control 7.2 A Taxonomy of
Software Development Projects
7.3 Risk Management 7.4 Techniques for 7.5 Project
Planning and Control
7.6 Requirements Engineering 7.7 Requirements
Elicitation 7.8 Requirements
Documentation and
Expository
Mediated Lecture
Sharing identified facts Developing Prototype
Seatwork2
Software Prototype LE3
Page 10 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output types of activity:
elicitation, specification, validation, and negotiation Distinguish number of requirements elicitation techniques Identify the contents of a requirements specification document Identify various techniques and notations for specifying requirements Identify different ways to structure a set of
requirements
Management 7.9 Requirements
Specification Techniques 7.10. Verification and Validation
Differentiate various classic modeling techniques
9 C3, C4,
C5, C6
8. Modeling
8.1. Classic Modeling Techniques 8.2. On Objects and
Expository
Mediated Lecture
Brainstorming within groups
Initial Software
Page 11 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output
Integrate the role of software architecture in software development Incorporate the relation between software
architecture and design decisions Determine software architecture in different views Include the role and purpose of software architecture assessments
Related Stuff
8.3. The Unified Modeling Language 8.4. Software
Architecture 8.5. Software
Architecture and the Software Life Cycle
8.6. Architecture Design
Documentation
Quiz3
Documentation
Determine desirable properties of a software design Identify some widely known classical design methods
10 C3, C4,
C5, C6
10. Software Design 10.1. Design
Considerations 10.2. Classical Design
Methods
10.3. Object-Oriented Analysis and Design Methods 10.4. How to Select a
Expository
Mediated Lecture
Software Project Designing
Software Design
Page 12 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output
Consolidate the general flavor of object-oriented analysis and design methods Determine the role of design patterns and be able to illustrate their properties
Design Method 10.5. Design Patterns 10.6. Design
Documentation 10.7. Verification and
Validation
Differentiate major software testing
techniques Employ different test objectives to the selection of different testing techniques Classify testing techniques, based on the objectives they try to reach
Differentiate testing
techniques with
11 C3, C4,
C5, C6
11. Software Testing 11.1. Test Objectives 11.2. Testing and the
Software Life Cycle 11.3. Verification and
Validation Planning and Documentation 11.4. Manual Test
Techniques 11.5. Coverage-Based
Test Techniques 11.6. Fault-Based Test
Techniques 11.7. Error-Based Test
Techniques 11.8. Comparison of
Test Techniques
Expository
Mediated Lecture
Collaborative activity
Brainstorming
Prototype testing
Seatwork2
Enhanced Prototype
Page 13 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output respect to their
theoretical power as well as their practical value Use information on some
mathematical models to estimate the reliability of software
11.9. Test Stages 11.10. Estimating Software Reliability
12 Midterm
Examination Determine major
causes of maintenance problems Incorporate reverse
engineering, its limitations, and tools to support it Identify different ways in which maintenance activities can be organized Classify major
13 C1, C3,
C4, C5, C6
12. Software Maintenance 12.1. Maintenance Categories
Revisited 12.2. Major Causes of
Maintenance Problems 12.3. Software Evolution Revisited 12.4. Organizational and Managerial Issues
Expository
Mediated Lecture
Project
Documentation Checking
Enhanced project
documentation
Page 14 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output differences
between
development and maintenance and the
consequences of them
Distinguish various
dimensions along which tools can be classified Identify major trends in (collections of) software tools
C1, C3, C4, C5, C6
13. Software Tools 13.1. Toolkits 13.2. Language- Centered Environments 13.3. Integrated Environments and
Workbenches 13.4. Process- Centered Environments
Expository
Mediated Lecture
Boardwork Checking Project Used Tools
Enhanced Project Software
Identify different architectural styles for interactive systems
Determine role of various models in user interface design
Incorporate user-
14 C1, C3,
C4, C5, C6
14. User Interface Design 14.1. Where Is The User
Interface?
14.2. Human Factors in Human- Computer Interaction 14.3. The Role of Models in Human-
Page 15 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output interface
considerations Cite differences between a user- centered approach to the design of interactive systems and other
requirements engineering approaches
Computer Interaction 14.4. The Design of Interactive Systems 14.5. Task Analysis 14.6. Specification of the User
Interface Details 14.7. Evaluation
Incorporate number of composition- based and
generation-based reuse techniques Employ reuse which can be incorporated into the software life cycle
Identify the relation between reuse and various other software engineering
15 C3, C4,
C5, C6
15. Software Reusability 15.1. Reuse
Dimensions 15.2. Reuse of Intermediate Products
15.3. Reuse and the Software
Life Cycle
15.4. Reuse Tools and Techniques 15.1. Perspectives of
Software Reuse 15.2. Non-Technical
Aspects of Software Reuse
Expository
Mediated Lecture
Presentation1 Group Final Project LE4
Page 16 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output concepts and
techniques Determine major factors that impede
successful reuse Classify the essentials of component-based software
engineering Identify
characteristics of components and component models
To be aware of software development processes for component-based systems
Determine the mutual relations between software architecture and component models
16 C3, C4,
C5, C6
16. Component-Based Software Engineering 16.1. Component
Models and Components 16.2. Component-
Based
Development Process and Component Life Cycle
16.3. Architectural Approaches in Component-
Based Development
Expository
Mediated Lecture
Presentation2 Group Final Project LE4
Page 17 of 19 AY1617 – July 15, 2016 /amagcalas
Intended Learning Outcome
Unit (Weeks)
Course Outcome
Topic Learning
Activities
Assessment Activity
Student Output
Determine the essentials of service orientation Use the
characteristics of a service-oriented architecture (SOA)
Determine on how Web services implement services Identify the essentials of service-oriented software
engineering (SOSE)
Identify different approaches for addressing the challenges of global software development
17 C1, C3,
C4, C5, C6
17. Service Orientation 17.1. Services, Service Descriptions, and Service
Communication 17.2. Service-Oriented
Architecture (SOA)
17.3. Web Services
17.4. Service-Oriented Software
Engineering 17.5. Global Software Development 17.6. Challenges of
Global System Development 17.7. How to
Overcome Distance
Expository
Mediated Lecture
Presentation3 Group Final Project LE4
18 Final
Examination
Page 18 of 19 AY1617 – July 15, 2016 /amagcalas
Course References:
A. Published Materials
Sommerville, Ian, ‘Software Engineering’, 2004 Pearson Education , Boston
Sharma, Pankaj, ‘Software Engineering’, 2004
Vliet, Hans Van, Wiley, John, ‘Software Engineering: Principles and Practice’, 2008, 3rd Edition
Pfleeger, Shari Lawrence, ‘Software Engineering : Theory and Practice’, 2006 Pearson Education , New Jersey
B. Web References
www.cse.wustl.edu/~cdgill/courses/cse436/SoftReq1.ppt (Software Requirements: Overview and Motivation)
www.cs.ccsu.edu/~stan/classes/CS530/Slides/SE-18.pdf (Software Reuse)
www.uncp.edu/home/lilliec/Fall2014/csc2920/slides/Ch24.ppt (Software Quality Management)
www.unf.edu/~broggio/cis6516/classnotes/Talk-Software_Ethics.ppt (Software Engineering Code of Ethics)
www.coe.utah.edu/~cs3500/examples/DEC07/ethics.ppt (Software Engineering Code of Ethics and Professional Practice)
www.cs.vu.nl/~hans/SEslides/global.ppt (Global Software Development)
Grading System
The final grade in this course will be composed of the following items and their weights in the final grade computation:
Class Standing 70%
Major Exam 30%
FINAL GRADE = Class Standing + Major Exam
Page 19 of 19 AY1617 – July 15, 2016 /amagcalas
Transmutation Table:
Minimum Passing Percent Average of Subject : 50
RANGE EQUIVALENTS (COMPUTED AVERAGES & TRANSMUTED VALUES)
Range of Computed Average Range of
Transmuted Values Grade General Classification
94.0000 100.0000 97 100 1.00 Outstanding
88.0000 93.9999 94 96 1.25 Excellent
82.0000 87.9999 91 93 1.50 Superior
76.0000 81.9999 88 90 1.75 Very Good
70.0000 75.9999 85 87 2.00 Good
64.0000 69.9999 82 84 2.25 Satisfactory
58.0000 63.9999 79 81 2.50 Fairly Satisfactory
52.0000 57.9999 76 78 2.75 Fair
50.0000 51.9999 75 3.00 Passed
Below Passing Average 5.00 Failed
Failure due to absences 6.00 FA
Unauthorized Withdrawal 8.00 UW
Officially Dropped 9.00 Dropped