0% found this document useful (0 votes)
45 views

Introduction To Software Engineering

The document discusses policies, contacts, definitions of software, software engineering, the history of software engineering, characteristics of professional software development, steps to make a professional software system. It provides details on various topics related to software engineering.

Uploaded by

idontKnow99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views

Introduction To Software Engineering

The document discusses policies, contacts, definitions of software, software engineering, the history of software engineering, characteristics of professional software development, steps to make a professional software system. It provides details on various topics related to software engineering.

Uploaded by

idontKnow99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Software Engineering

Lecture: 1

Ms Sana Arshad
Lecturer in CS, Superior Group of colleges M B Din
Policies
 Must write your name, roll number and
section in a test
 You can submit the assignments till the end
of class on due date
 20% marks deduction per week day for late
submission of work
 Ask questions; participate actively in class
 You are allowed to talk to instructor only

2
Policies

 You are responsible for what is covered in


class
 Deficiency in attendance may lead to
termination
 You are encouraged to help each other with
your homework assignments – but you must
turn in your own work
 If you are found to be cheating, you will fail
at least the assignment / test and perhaps
the entire class

3
Contacts

 Email:
[email protected]
 Exceptional meeting:

4
What is a Software?
 It is general term for various kinds of
programs used to operate computers and
related devices.
 Two types
◦ Application software
◦ System software

5
Engineering
 Derived from old French engin = skill, which stems from
Latin ingenium = ability to invent, brilliance, genius

 The word was created in the 16th century and


originally described a profession that we would
probably call an artistic inventor ("Encyclopedia" by The Software
Toolworks, 1991)

 Engineering is the application of science for practical


purposes.

6
What is Software Engineering?
 Software Engineering is an engineering discipline which
concerns with the development of software by applying
Engineering Principles

 Goal is the cost-effective development of software


systems

7
Software Engineering?
Software Engineering [IEEE]:

 The application of a systematic, disciplined, quantifiable


approach to the development, operation, and
maintenance of software; that is, the application of
engineering to software.

8
Software Engineering
 In 1968 a Conference was held in Germany.

◦ Purpose: to look for a solution to software crisis

◦ 50 top computer scientists, programmers and industry leaders


got together to look for a solution to the difficulties in building
large software systems (i.e., software crisis)

◦ The term “software engineering” was first used in that


conference to indicate a systematic, disciplined, quantifiable
approach to the production and maintenance of software
 Three-decades later (1994) an article in Scientific American (Sept.
94, pp. 85-96) by W. Wayt Gibbs was titled:

◦ “Software’s Chronic Crisis’’


Software’s Chronic Crisis
Large software systems often:
 Do not provide the desired functionality
 Take too long to build
 Cost too much to build
 Require too much resources (time, space) to run
 Cannot evolve to meet changing needs

◦ For every 6 large software projects that become


operational, 2 of them are canceled
◦ On the average software development projects
overshoot their schedule by half
◦ 3 quarters of the large systems do not provide
required functionality
Software Failures
 There is a long list of failed software
projects and software failures

 You can find a list of famous software


bugs at:
http://www5.in.tum.de/~huckle/bugse.html
Software’s Chronic Crisis
 These are not isolated incidents:
◦ IBM survey of 24 companies developing
distributed systems:
 55% of the projects cost more than expected
 68% overran their schedules
 88% had to be substantially redesigned
Software’s Chronic Crisis
 Software’s chronic crisis: Development of
large software systems is a challenging
task

 Software engineering focuses on


addressing challenges that arise in
development of large software systems
using a systematic, disciplined,
quantifiable approach
Professional software development
 Key chracteristics of developer
 1. Knowledge of the full stack
 2. Ability to learn, adapt and grow
 3. Business acumen
 4. Time management
 5. Interpersonal skills
Cont....
knowledge of full stack
 good software engineer or good software developer needs
technical knowledge and technical skills.
 Full-stack doesn’t mean "everything." It simply means "end-to-
end."
 A software product is made of several layers—front-end, back-end,
server, hardware, network, and database. An excellent software
engineer would not only be knowledgeable about the functionality
of each stack.
Ability to learn, adapt and grow
 A LinkedIn survey showed that programmers spend more time
learning than any other professional.
 48% of software engineers learned a new skill recently, compared
to 36% among all professionals. some key sources of learning as
follow.
 On-the-job learning with GitHub, StackOverflow, etc
 Seminars and conferences.
 Mentorships and coaching
Business acumen
 Understanding the end-user personas clearly
 Collaborating closely with the business teams
 Collecting and working on user feedback
 Studying usage analytics and other performance metrics
Time management
 Time-tracking to measure productivity
 Clear goal-setting—from daily and weekly to
yearly and beyond
 Regular reviews to track progress
Interpersonal skills
 Collaboration skills. You must be able to effortlessly collaborate
with various team members across cultures and backgrounds.
 Communication skills. You must know how to communicate,
clarify, explain, and persuade.
 Empathy skills. You must understand the needs of the user and
how the software addresses them.
 Critical thinking skills. Software engineering is nothing if not a
bundle of problems waiting to be solved. Software engineers need
to critically analyze situations and solve problems.
 Leadership skills. Must have leadershio and team work skills to
manage team
Steps to make professional system
 Establish clear communication paths:Starting from day one, make
sure that the roles are well-defined and everyone knows who
handles what.
 Keep the information in a well-known location and make it
accessible to everyone.
 Define best practices and conventions:
 Give time to past experience
 Dont start coding quickly
 End result should be validat and tested
 Create a meaningful Definition of Done:
 keep weekly and monthly record
 keep documentation
cont....
 Choose an appropriate continuous integration system:
 make sure that you can release the new developments with
minimal effort.
 There are a couple of very important factors to take into account
when making this choice, though.
 One of them is the preference of the team, and the other one is
the price of the tool.
 It’s always wiser to use a continuous integration tool that your
team has used before.
Choose your tools and applications:
One thing that you want to avoid is using too many different tools for
achieving the same purpose.
listen to the preferences of your team, but make a clear choice.
cont....
 Use version control systems wisely:
 Version control systems are a must for every software project.
 You cannot develop a software solution collaboratively without
using one.
 You have to invest some time to define the way in which you want
the system to be used for your new project.
 Avoid having multiple document management systems:
 One of the most frustrating things is when you need to find a piece
of information and you don’t know where to look for it.
 This usually happens because there are too many places where it
could be.
 It shouldn’t be that complicated.
Cont....
 Define the environments required for your solution:
 Development Environment
 User Acceptance Testing Environment
 Staging and Production Environments
 Wrapping up

You might also like