Lecture-01-Introduction - Current
Lecture-01-Introduction - Current
2
Expected Practical Skills
• Perform a requirement analysis on different area of problem
• Perform an object-oriented design
• Prepare different types of documents. (requirement, design
and testing)
• Verify and validate a Software system
Expected transferable skills
• will be able to work with different platforms and have a handy
experience on working on documentation skills
• Effective communication skill acquired during group work
• A hand on experience on proposal writing and different
collaborative tools
3
Class format: A typical week
• Lecture sessions to discuss best practices
Lecture 1 – Introduction
Software engineering
• Software Engineering is not Programming
– Programming is primarily a personal activity
7
8
Software Engineering
• “Engineering is the analysis, design, construction, verification,
and management of technical (or social) entities”
10
11
Why Software engineering?
12
What is Software engineering
• Software engineering
– Creating and maintaining software applications by applying
technologies and practices from computer science, project
management, and other fields.
13
• Real-time software
• Business software
• Engineering and scientific software
• Embedded software
• Personal computer software
• Web-based software
• Artificial intelligence software
14
Aspects of software engr.
1. Processes necessary to turn a concept into a robust
deliverable that can evolve over time
3. Satisfying a customer
4. Managing risk
15
Ties to many fields
– computer science (algorithms, data structures, languages, tools)
– business/management (project mgmt, scheduling)
– economics/marketing (selling, niche markets, monopolies)
– communication (managing relations with stakeholders:
customers, management, developers, testers, sales)
– law (patents, licenses, copyrights, reverse engineering)
– sociology (modern trends in societies, localization, ethics)
– political science (negotiations; topics at the intersection of
law, economics, and global societal trends; public safety)
– psychology (personalities, styles, usability, what is fun)
– art (GUI design, what is appealing to users)
16
Roles of people in software
– customer / client: wants software built
• often doesn't know what he/she wants
SOFTWARE
DELIVERABLE
TIME RESOURCES
18
Course Projects
• You make proposals (then vote on which projects to develop)
– start thinking about ideas today
19
Project development stages
• Proposal
• Requirements
– Explicitly write the problem statement
• Design
– Come up with a solution for the problem on paper
• Implementation
– Free to choose your own tools and frameworks
• Testing, validation, verification
• Documentation (in each stage)
• Final deliverable
20
We’ll hit the ground running ...
• Your chance to turn a great idea into a product!
22
Advice
• "Work together (in the same place) as much as possible."
23
What's in it for you
• What you'll learn
– get exposure to software development practices in use today
– learn how to collaborate with others toward a common goal
– see how software is produced, from idea to ship to maintenance
– get experience working in a large team toward a common goal
– be able to articulate and understand ideas in a conversation
– understand issues and tradeoffs in decisions as a manager
24
Unique aspects of course
• cross-disciplinary nature of the subject
• larger-size teams
25
Grading and Academic Honesty
• Grading
– Project (presentations and deliverables): 50%
– Class activity (specially during student presentations): 5%
– Quizzes and Midterm: 15%
– Final exam: 30%
• Academic integrity
– Do individual work by yourself.
– Do group work with your teammates only.
26
Reading
• Sommerville, Ian. Software engineering. Boston: Pearson, 2016
• Pressman, Roger S. Software engineering : a practitioner's
approach. New York, NY: McGraw-Hill Education, 2015
• Software engineering, Ivan Marsic
27
Tasks for next week:
28