Software development
Introduction
Software engineering is a branch of computer science which
includes the development and building of computer systems
software and applications software. Computer systems software
is composed of programs that include computing utilities and
operations systems. Applications software consists of user-
focused programs that include web browsers, database programs,
etc.
Introduction
Software engineers have extensive knowledge of programming
languages, software development, and computer operating
systems, and they apply engineering principles to software
creation. By applying these engineering principles to every stage
of the development process, from requirements analysis to the
software process, they can create customized systems for
individual clients.
7 top qualities that make a successful software developer
❖ be a team player- engineers who are team players are much more likely to be
successful in their careers than lone-wolf types.
❖ stay humble - successful developers don’t bring their egos to work. Other team
members might have constructive criticism during code review, or your code might
have bugs that you only find out about after shipping the product.
❖ practice makes perfect- successful developers keep their skills sharp
❖ invest in your own work
❖ keep an eye on the bigger picture - this ability to balance the long-term and short-
term perspectives is what separates really good developers from the ones who are
just OK.
❖ stay curious
❖ pay strong attention to details in order to write a high-quality code
Steps in the software development process (1)
❖ selecting a methodology to establish a framework in which the steps of software development are
applied
❖ gathering requirements to understand and document what is required by users and other stakeholders
❖ choosing or building an architecture
❖ developing a design
❖ constructing code in the appropriate programming language. Involves peer and team review to
eliminate problems early and produce quality software faster.
❖ testing with pre-planned scenarios as part of software design and coding
❖ managing configuration and defects to understand all the software artifacts (requirements, design,
code, test)
❖ deploying the software for use and responding to and resolving user problems.
❖ migrating data to the new or updated software from existing applications or data sources if necessary.
❖ managing and measuring the project to maintain quality and delivery over the application
lifecycle, and to evaluate the development process
Steps in the software development process (2)
❖ Requirements analysis and specification
❖ Design and development
❖ Testing
❖ Deployment
❖ Maintenance and support