Software Development Lifecycle Specialization

Start Date: 07/12/2020

Course Type: Specialization Course

Course Link:

About Course

This Specialization is designed for people who are new to software engineering. It's also for those who have already developed software, but wish to gain a deeper understanding of the underlying context and theory of software development practices. At the end of this Specialization, we expect learners to be able to: 1.) Build high-quality and secure software using SDLC methodologies such as agile, lean, and traditional/waterfall. 2.) Analyze a software development team's SDLC methodology and make recommendations for improvements. 3.) Compare and contrast software development methodologies with respect to environmental, organizational, and product constraints.

Course Syllabus

Software Development Processes and Methodologies
Agile Software Development
Lean Software Development
Engineering Practices for Building Quality Software

Coursera Plus banner featuring three learners and university partner logos

Course Introduction

Launch Your Career in Software Development. Master techniques and best practices for traditional and agile software project management. Software Development Lifecycle Specialization The Software Development Lifecycle Specialization is the specialization designed to give you insight into the philosophies, skills, and techniques that you need to know to become a developer in the future. We'll cover topics such as software product life cycles, software project lifecycles, software project initiation, project planning, and project termination, all in a focused and easy-to-follow framework. In this specialization, you will learn how to become a developer better equipped to handle the various stages of the software development lifecycle. By taking this course, you will gain a better understanding of software development and what it entails. You'll also gain a better understanding of your own development process and the techniques and strategies that you need to employ to maximize the usefulness and life of your projects. This course is aimed at anyone interested in software development, whether you have already completed your engineering studies or are taking an accelerated course on Software Engineering and Design. It is also aimed at anyone that is interested in learning more about the life cycle of software development, and what techniques and strategies are best employed for that purpose. This specialization has been divided into four modules, each covering one of the four phases of software development: Design, Implementation, Testing and Deployment. Each module is presented in a sequence, chronologically, and it is organized in four sections. By taking this course, you will gain an in-depth understanding of the philosophy, skills, and techniques that you need to know

Course Tag

Lean Software Development Kanban Agile Software Development Software Development Process

Related Wiki Topic

Article Example
Microsoft Security Development Lifecycle The Microsoft Security Development Lifecycle is a software development process used and proposed by Microsoft to reduce software maintenance costs and increase reliability of software concerning software security related bugs. It is based on the classical spiral model.
Application lifecycle management Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, continuous integration, project management, and release management.
Axiomatic product development lifecycle Transdisciplinary System Development Lifecycle (TSDL), and
Development testing Development testing is performed by the software developer or engineer during the construction phase of the software development lifecycle.
Axiomatic product development lifecycle Axiomatic Product Development Lifecycle (APDL) (also known as
Integrated application lifecycle management Integrated application lifecycle management is a totally integrated set of tools and processes that help organizations manage the entire lifecycle of an application development. It connects different teams, activities, platforms, tools, and processes involved in a software development project.
Software development These stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. The level of detail of the documentation produced at each stage of software development may also vary. These stages may also be carried out in turn (a “waterfall” based approach), or they may be repeated over various cycles or iterations (a more "extreme" approach). The more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. More “extreme” approaches also promote continuous testing throughout the development lifecycle, as well as having a working (or bug-free) product at all times. More structured or “waterfall” based approaches attempt to assess the majority of risks and develop a detailed plan for the software before implementation (coding) begins, and avoid significant design changes and re-coding in later stages of the software development lifecycle planning.
Lifecycle Modeling Language SysML uses object oriented design, because it was designed to relate systems thinking to software development. No other discipline in the lifecycle uses object oriented design and analysis extensively. LML captures the entire lifecycle from cradle to grave.
Open-source software development Fuggetta argues that “rapid prototyping, incremental and evolutionary development, spiral lifecycle, rapid application development, and, recently, extreme programming and the agile software process can be equally applied to proprietary and open source software”. He also pinpoints Extreme Programming as an extremely useful method for open source software development. More generally, all Agile programming methods are applicable to open-source software development, because of their iterative and incremental character. Other Agile method are equally useful for both open and closed source software development:Internet-Speed Development, for example is suitable for open-source software development because of the distributed development principle it adopts. Internet-Speed Development uses geographically distributed teams to ‘work around the clock’. This method, mostly adopted by large closed-source firms, (because they're the only ones which afford development centers in different time zones), works equally well in open source projects because a software developed by a large group of volunteers shall naturally tend to have developers spread across all time zones.
The Lifecycle of Software Objects The Lifecycle of Software Objects is a novella by Ted Chiang originally published in 2010 by Subterranean Press.
Seapine Software Seapine Software is a privately held Mason, Ohio-based software and services company. Seapine develops a suite of software products that manage the full software development lifecycle. Seapine's tools include testing tools, configuration management, test-case management, and requirements management.
Software quality management Software quality management can be realized in various ways depending on organization and type of realized project, but it should support whole software development lifecycle, meaning:
Rational Engineering Lifecycle Manager Rational Engineering Lifecycle Manager is a product lifecycle management application created by the Rational Software brand of IBM.
Development testing VDC research reports that the standardized implementation of development testing processes within an overarching standardized process not only improves software quality (by aligning development activities with proven best practices) but also increases project predictability. voke research reports that development testing makes software more predictable, traceable, visible, and transparent throughout the software development lifecycle.
Software development Computer-aided software engineering (CASE), in the field software engineering, is the scientific application of a set of software tools and methods to the development of software which results in high-quality, defect-free, and maintainable software products. It also refers to methods for the development of information systems together with automated tools that can be used in the software development process. The term "computer-aided software engineering" (CASE) can refer to the software used for the automated development of systems software, i.e., computer code. The CASE functions include analysis, design, and programming. CASE tools automate methods for designing, documenting, and producing structured computer code in the desired programming language.
Dorado Software Dorado Software is a multinational information technology company specializing in the development, licensing, and support of network management software. Dorado develops and maintains the Redcell product suite, which provides infrastructure and service lifecycle management for heterogeneous and multi-technology environments.
Software development There are many approaches to software project management, known as software development life cycle models, methodologies, processes, or models. The waterfall model is a traditional version, contrasted with the more recent innovation of agile software development.
Software development The need for better quality control of the software development process has given rise to the discipline of software engineering, which aims to apply the systematic approach exemplified in the engineering paradigm to the process of software development.
Axiomatic product development lifecycle proposed by Bulent Gumus that extends the Axiomatic design (AD) method. APDL covers the whole product lifecycle including early factors that affect the entire cycle such as development testing, input constraints and system components.
Software development Because software development may involve compromising or going beyond what is required by the client, a software development project may stray into less technical concerns such as human resources, risk management, intellectual property, budgeting, crisis management, etc. These processes may also cause the role of business development to overlap with software development.